\documentclass[a4paper,11pt]{article}
\usepackage{slashbox}
\usepackage{enumerate}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{graphicx}
\usepackage{epic,eepic}
%\usepackage{float}
\usepackage{wrapfig}
%\floatstyle{boxed}
%\restylefloat{figure}
\begin{document}
\title{Task1 report}
\author{Amir Afroozeh, Ping Wang}
\maketitle
\section{Lab set up}
In Part1, we set up two Sip user agents, which act as caller and callee. One sip proxy is running in the proxy mode, another sip proxy is running in the direct mode. see in Table \ref{tab:task1setup}.
\begin{table}[Task1 set up]
\begin{center}
    \begin{tabular}{ | l | l | l | p{5cm} |}
    \hline
    SIP Entity & Operating platform & running software & SIP URI \\ \hline
    UA-Caller  & ubuntu 12.10       & SJPhone 1.6      & ping@wilma.item.ntnu.no \\ \hline
    UA-Callee  & ubuntu 12.10       & SJPhone 1.6      & Task1R1@wilma.item.ntnu.no \\ \hline
    SIP-proxy  & in proxy mode      & OPENSIP          & fred.item.ntnu.no \\ \hline
    SIP-proxy  & in direct mode     & OPENSIP          & wilma.item.ntnu.no \\ \hline 
    \end{tabular}
\end{center}
\caption{Task1 set up}
\label{tab:task1setup}
\end{table}
\section{Part 1}
\subsection{The 4 test cases of Part 1}
Part-1 consists of 2 simple cases, each carried out in two different configurations giving a total of 4 test cases. see in Table \ref{tab:part1testcases}.
\begin{table}[Part 1 test cases]
\begin{center}
    \begin{tabular}{| p{5cm} | l | l |}
    \hline
      & direct mode   & proxy mode \\ \hline
     Case R (reject):\\
     Logically described as “A calls B, and B rejects” &  R-1   &  R-2  \\ \hline
     Case A (answer):\\
     Logically described as “A calls B, and B answers” &  A-1   & A-2 \\ \hline
    \end{tabular}
\end{center}
\caption{Part1 test cases}
\label{tab:part1testcases}
\end{table}
\subsubsection{Direct mode R-1: A calls B, and B rejects.}
\paragraph{Purpose:}
SIP signaling in the case that receiver rejects the call.
\paragraph{Pre-condition:}
Caller and callee are already registered in registrar. Proxy wilma.item.ntnu.no is used.
\paragraph{Test execution:}
The caller (ping@wilma.item.ntnu.no) calls the callee (Task1R1@wilma.item.ntnu.no), using SJPhone by adding callee’s SIP URI. After ringing, callee rejects the call.
\paragraph{Test Results:}
see in Figure \ref{fig:r1}.
\begin{figure}
\centering
\vspace*{-1.5cm}
\includegraphics[scale=0.47]{11.pdf}
\caption{A calls B, and B rejects in direct mode.}
\label{fig:r1}
\end{figure}
\begin{list}{*}{}
\item To: Sip address of the callee. $<$sip:Task1R1@wilma.item.ntnu.no:5060$>$
\item From: Sip address of the caller and a display name (Unknown in this case) which will show in subsequent messages. "unknown"$<$sip:ping@wilma.item.ntnu.no:5060$>$;tag=27703296271320597374
\item Contact: In this field caller and callee add their direct route (INVITE, Ring, OK) which each party can reach other party directly. The caller adds its direct contact address in INVITE request and callee adds it’s direct address in ringing response. The Contact header field tells other elements where to send future requests.\\ \\
\qquad Contact value: $<$sip:ping@129.241.209.4:5060$>$
\item Via: In this case, there are more than one via field. All sip elements which the INVITE request pass through will add its identity in the via header,Therefore, two via headers are added. The caller and proxy's IP address. The Via header field tells other elements where to send the response.\\ \\
\qquad Via 1 value: SIP/2.0/UDP 129.241.200.43;branch=z9hG4bKe931.3804229.0\\
\qquad Via 2 value: SIP/2.0/UDP 129.241.209.4;received=129.241.209.4;rport=5060;\\
branch=z9hG4bK81f1d1040000001f510fa5da6a7d14f40000000c
\item Call-ID: The Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client.\\ \\
\qquad Call-ID value: 40A35974-1DD2-11B2-B490-A80E60315C3F@129.241.209.4
\item CSeq: The CSeq header field serves to order transactions within a dialog, to provide a means to uniquely identify transactions, and to differentiate between new requests and request retransmissions.\\ \\
\qquad CSeq value: 1 INVITE
\end{list}
\paragraph{Test verdict:}
The proxy sent back busy ack to callee immediately and then forward the 486 busy message to the caller. Finally, caller sent Ack to callee directly.
\subsubsection{Direct mode A-1: A calls B, and B answers.}
\paragraph{Purpose:}
SIP signaling in the case that receiver answers the call.
\paragraph{Pre-condition:}
Caller and callee are already registered in registrar. Proxy wilma.item.ntnu.no is used.
\paragraph{Test execution:}
The caller (ping@wilma.item.ntnu.no) calls the callee (Task1R1@wilma.item.ntnu.no), using SJPhone by adding callee’s SIP URI. After ringing, callee answers the call.
\paragraph{Test Results:}
see in Figure \ref{fig:a1}.
\begin{figure}
\centering
\vspace*{-1.5cm}
\includegraphics[scale=0.47]{12.pdf}
\caption{A calls B, and B answers in direct mode.}
\label{fig:a1}
\end{figure}
\begin{list}{*}{}
\item To: Sip address of the callee. \\\\
\qquad To value: "unknown"$<$sip:Task1R1@wilma.item.ntnu.no:5060$>$;tag=277040080752498312
\item From: Sip address of the caller and a display name (Unknown in this case) which will show in subsequent messages. \\\\
\qquad From value: "unknown"$<$sip:ping@wilma.item.ntnu.no:5060$>$;tag=27704006031873972453 
\item Contact: In this field caller and callee add their direct route (INVITE, Ring, OK) which each party can reach other party directly. The caller adds its direct contact address in INVITE request and callee adds it’s direct address in ringing response. The Contact header field tells other elements where to send future requests.\\ \\
\qquad Contact value: $<$sip:Task1R1@129.241.209.5:5060$>$
\item Via Header: Tells other elements where to send the response.\\ \\
\qquad Via value: SIP/2.0/UDP 129.241.200.43;branch=z9hG4bKcb23.40ba9d34.0,SIP/2.0/UDP 129.241.209.4;rport=5060;received=129.241.209.4;\\
branch=z9hG4bK81f1d10400000021510fa6212aca894300000010
\item Call-ID: The Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client.\\ \\
\qquad Call-ID value: 6AF177BA-1DD2-11B2-B490-A80E60315C3F@129.241.209.4 
\item CSeq: The CSeq header field serves to order transactions within a dialog, to provide a means to uniquely identify transactions, and to differentiate between new requests and request retransmissions.\\ \\
\qquad CSeq value: 1 INVITE
\end{list}
\paragraph{Test verdict:}
Because proxy is running in direct mode, so in the end of call establishment, caller sent ACK to callee directly.
\subsubsection{Proxy mode R-2: A calls B, and B rejects.}
\paragraph{Purpose:}
SIP signaling in the case that receiver rejects the call.
\paragraph{Pre-condition:}
Caller and callee are already registered in registrar. Proxy fred.item.ntnu.no is used.
\paragraph{Test execution:}
The caller (ping@fred.item.ntnu.no) calls the callee (Task1R1@fred.item.ntnu.no), using SJPhone by adding callee’s SIP URI. After ringing, callee rejects the call.
\paragraph{Test Results:}
see in Figure \ref{fig:r2}.
\begin{figure}
\centering
\vspace*{-1.5cm}
\includegraphics[scale=0.47]{13.pdf}
\caption{A calls B, and B rejects in proxy mode.}
\label{fig:r2}
\end{figure}
\begin{list}{*}{}
\item Record-Route: The Record-Route header field is inserted by proxies in a request to force future requests in the dialog to be routed through the proxy. \\\\
\qquad Record-Route value: $<$sip:129.241.200.44;lr$>$
\item To: Sip address of the callee. \\\\
\qquad To value: $<$sip:amir@fred.item.ntnu.no:5060$>$ 
\item From: Sip address of the caller and a display name (Unknown in this case) which will show in subsequent messages. \\\\
\qquad From value: "unknown"$<$sip:task1R2Caller@fred.item.ntnu.no:5060$>$;tag=2768983505389912408.
\qquad Via 1 value: SIP/2.0/UDP 129.241.200.44;branch=z9hG4bK8f3d.271d2a56.0\\
\qquad Via 2 value: SIP/2.0/UDP 129.241.209.4;received=129.241.209.4;rport=5060;\\
branch=z9hG4bK81f1d10400000026510fa09802a792af0000000e
\item Call-ID: The Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client.\\ \\
\qquad Call-ID value: 1E4989D2-1DD2-11B2-BBEE-D6AE1DFF5EA2@129.241.209.4
\item CSeq: The CSeq header field serves to order transactions within a dialog, to provide a means to uniquely identify transactions, and to differentiate between new requests and request retransmissions.\\ \\
\qquad CSeq value: 1 INVITE
\end{list}
\paragraph{Test verdict:}
Because of SIP server in proxy mode, proxy fred insert its own ip into Record-Route header, therefore, the ACK response sent by caller comes to the proxy fred, not to callee directly.
\subsubsection{Proxy mode A-2: A calls B, and B answers.}
\paragraph{Purpose:}
SIP signaling in the case that receiver answers the call.
\paragraph{Pre-condition:}
Caller and callee are already registered in registrar. Proxy fred.item.ntnu.no is used.
\paragraph{Test execution:}
The caller (task1R2Caller@fred.item.ntnu.no) calls the callee (amir@fred.item.ntnu.no), using SJPhone by adding callee’s SIP URI. After ringing, callee answers the call.
\paragraph{Test Results:}
see in Figure \ref{fig:a2}.
\begin{figure}
\centering
\vspace*{-1.5cm}
\includegraphics[scale=0.47]{14.pdf}
\caption{A calls B, and B answers in proxy mode.}
\label{fig:a2}
\end{figure}
\begin{list}{*}{}
\item Record-Route: The Record-Route header field is inserted by proxies in a request to force future requests in the dialog to be routed through the proxy. \\\\
\qquad Record-Route value: $<$sip:129.241.200.44;lr$>$
\item To: Sip address of the callee. \\\\
\qquad To value: "unknown"$<$sip:amir@fred.item.ntnu.no:5060$>$;tag=2769091920939466754
\item From: Sip address of the caller and a display name (Unknown in this case) which will show in subsequent messages. \\\\
\qquad From value: "unknown"$<$sip:task1R2Caller@fred.item.ntnu.no:5060$>$;tag=27690917511531438394
\item Call-ID: The Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client.\\ \\
\qquad Call-ID value: 5ECE91D2-1DD2-11B2-BBEE-D6AE1DFF5EA2@129.241.209.4
\end{list}
\paragraph{Test verdict:}
Because of SIP server in proxy mode, proxy fred insert its own ip into Record-Route header, therefore, the ACK response sent by caller comes to the proxy fred, then proxy fred relays ACK to callee.
\subsection{Lessons learnt relating to METHOD, responses and ACK}
\subsubsection{To, From and Contact and the role of SIP URI}
\begin{list}{*}{}
\item To Header: The field first and foremost specifies the desired "logical" recipient of the request, or the address-of-record of the user or resource that is the target of this request.
\item From header: The field indicates the logical identity of the initiator of the request, possibly the user's address-of-record. Like the To header field, it contains a URI and optionally a display name. It is used by SIP elements to determine which processing rules to apply to a request.
\item Contact header: The field provides a SIP or SIPS URI that can be used to contact that specific instance of the UA for subsequent requests.The Contact header field MUST be present and contain exactly one SIP or SIPS URI in any request that can result in the establishment of a dialog.
\item SIP URI: A SIP URI is the SIP addressing schema to call another person via SIP. In other words, a SIP URI is a user’s SIP phone number. The SIP URI resembles an e-mail address and is written in the following format:\\
SIP URI = sip:username@host(domain or IP):Port
\subsubsection{The METHOD-response (req.-resp.) inherited from http}
 SIP is based on an HTTP-like request/response transaction model. Each transaction consists of a request that invokes a particular method, or function, on the server and at least one response.  In our testing cases, the transaction begins with caller's softphone sending an INVITE request addressed to callee's SIP URI.  INVITE is an example of a SIP method that specifies the action that the requestor (caller) wants the responder (callee) to take. There are 3 letter response codes in responses. \\\\
1xx: Provisional — request received, continuing to process the request; e.g. 100 Trying, 180 Ringing.
2xx: Success — the action was successfully received, understood, and accepted. e.g. 200 OK.
4xx: Client Error — the request contains bad syntax or cannot be fulfilled at this server. e.g. 486 Busy Here.
\subsubsection{The behaviour of ACK}
The completes the INVITE/200/ACK three-way handshake used to establish SIP sessions. The ACK assures callee of that the caller has received a response to an INVITE request. ACK is used only with INVITE requests. In direct mode, caller will send ACK to callee directly. In proxy mode, caller send ACK to proxy, proxy will relay ACK to callee.
\subsubsection{Lessons learnt relating to routing}
\item Branch: The branch parameter value MUST be unique across space and time for all requests sent by the UA. The exceptions to this rule are CANCEL and ACK for non-2xx responses. A CANCEL request will have the same value of the branch parameter as the request it cancels.
\item Record route: When the proxy is running on proxy mode, it inserts the record route in INVITE request which inform the receiver that the ACK and BYE messages should go through the proxy. Callee also adds this field in its subsequent messages and then all the future requests in the dialog to be routed through the proxy. see in Figure \ref{fig:recordroute}.
\begin{figure}
\centering
\vspace*{-1.5cm}
\includegraphics[scale=0.47]{record-route.png}
\caption{Record-Route header.}
\label{fig:recordroute}
\end{figure}
\end{list}
\section{Part 2}
\subsection{Case B-variant 1: A calls B and B does nothing, Bob is auto-answer}
\subsubsection{Pre-conditions}
UA-A and UA-B both registered with the proxy, UA-B shall be configured to auto-answer.
\subsubsection{Test execution}
UA-A calls UA-B and UA-B does nothing.
\subsubsection{Test results}
see figure \ref{fig:acallbbauto21}.
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{21.pdf}
\caption{A calls B and B does nothing, B is auto-answer}
\label{fig:acallbbauto21}
\end{figure}
\subsubsection{Message detail}
INVITE message: \\
\begin{list}{-}{}
\item Record-Route: $<$sip:129.241.200.44;lr$>$
\item Via: SIP/2.0/UDP 129.241.200.44;branch=z9hG4bKc91c.a5faa3a1.0
\item Via: SIP/2.0/UDP 129.241.209.4;received=129.241.209.4;rport=5060;\\
branch=z9hG4bK81f1d1040000002c5118e85b3ba299d900000024
\item Content-Length: 369
\item Contact: $<$sip:task1part2.1@129.241.209.4:5060$>$
\item Call-ID: 2E5DCB66-1DD2-11B2-83FD-969797948119@129.241.209.4
\item Content-Type: application/sdp
\item CSeq: 1 INVITE
\item From: $<$sip:task1part2.1@fred.item.ntnu.no:5060$>$;tag=3377177851785411596
\item Max-Forwards: 69 
\item To: $<$sip:amir@fred.item.ntnu.no:5060$>$
\item User-Agent: SJphone/1.60.299a/L(SJ Labs)
\end{list}
\subsubsection{Test verdict}
Since callee is configured to auto answer, there is no ringing response to INVITE, callee responds a 200 OK immediately to caller.
\subsection{Case B-variant 2: A calls B and B does nothing, Bob is not auto-answer}
\subsubsection{Pre-conditions }
UA-A and UA-B both registered with the proxy, UA-B shall be configured NOT to auto-answer.
\subsubsection{Test result}
see figure \ref{fig:2.2}.
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{22.pdf}
\caption{A calls B and B does nothing, B is not auto-answer}
\label{fig:2.2}
\end{figure}
\subsubsection{Message detail}
Timeout message:\\
\begin{list}{-}{}
\item Status-Line: SIP/2.0 408 Request Timeout
\item Via: SIP/2.0/UDP 129.241.209.4;received=129.241.209.4;rport=5060;\\
branch=z9hG4bK81f1d1040000002f5118e8fe6e9321370000002a
\item Call-ID: 8F75DC68-1DD2-11B2-83FD-969797948119@129.241.209.4
\item CSeq: 1 INVITE
\item From: $<$sip:task1part2.1@fred.item.ntnu.no:5060$>$;tag=3377340747959649003
\item To: $<$sip:amir@fred.item.ntnu.no:5060$>$;tag=76dbc8ee0260996fe462b53dc585e157-6ba0
\item Server: OpenSIPS (1.8.2-notls (i386/linux))
\end{list}
\subsubsection{Test verdict}
Wait for 2 minutes, nothing happen, just Ringing message.
\subsection{Case C: A calls B and B Answers}
\subsubsection{Pre-conditions }
A and B both registered with the proxy, UA-B shall be configured NOT to auto-answer.
\subsubsection{Test result}
see figure \ref{fig:23}.
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{23.pdf}
\caption{A calls B and B answer, B is not auto-answer}
\label{fig:23}
\end{figure}
\subsubsection{SDP offer}
\paragraph{Request-Line}
INVITE sip:amir@fred.item.ntnu.no:5060 SIP/2.0
\paragraph{Message Header}
\begin{list}{-}{}
\item Via: SIP/2.0/UDP 129.241.209.4;rport;\\
branch=z9hG4bK81f1d104000000315118ebff44d81d1f0000002e
\item Content-Length: 369
\item Call-ID: 59E5E4EC-1DD2-11B2-83FE-969797948119@129.241.209.4
\item Content-Type: application/sdp
\item CSeq: 1 INVITE
\item From: unknown $<$sip:task1part2.1@fred.item.ntnu.no:5060$>$;tag=33781098781521612331
\item Max-Forwards: 70
\item To: $<$sip:amir@fred.item.ntnu.no:5060$>$
\item User Agent: SJphone/1.60.299a/L (SJ Labs)
\end{list}
\paragraph{Message Body}
\begin{list}{-}{}
\item Session Description Protocol Version (v): 0
\item Owner/Creator, Session Id (o): - 3569576575 3569576575 IN IP4 129.241.209.4
\item Session Name (s): SJphone
\item IN IP4 129.241.209.4
\item Time Description, active time (t): 0 0
\item Session Attribute (a): direction:passive
\item Media Description, name and address (m): audio 49162 RTP/AVP 3 97 98 110 8 0 101
\item Media Attribute (a): rtpmap:3 GSM/8000
\item Media Attribute (a): rtpmap:97 iLBC/8000
\item Media Attribute (a): rtpmap:98 iLBC/8000
\item Media Attribute (a): fmtp:98 mode=20
\item Media Attribute (a): rtpmap:110 speex/8000
\item Media Attribute (a): rtpmap:8 PCMA/8000
\item Media Attribute (a): rtpmap:0 PCMU/8000
\item Media Attribute (a): rtpmap:101 telephone-event/8000
\item Media Attribute (a): fmtp:101 0-11,16
\end{list}
\subsubsection{SDP answer}
\paragraph{Status-Line}
Status-Line: SIP/2.0 200 OK
\paragraph{Message Header}
\begin{list}{-}{}
\item Via: SIP/2.0/UDP 129.241.209.4;rport=5060;received=129.241.209.4;\\
branch=z9hG4bK81f1d104000000315118ebff44d81d1f0000002e
\item Content-Length: 221
\item Contact: $<$sip:amir@129.241.209.3:5060$>$
\item Call-ID: 59E5E4EC-1DD2-11B2-83FE-969797948119@129.241.209.4
\item Content-Type: application/sdp
\item CSeq: 1 INVITE
\item From: "unknown"$<$sip:task1part2.1@fred.item.ntnu.no:5060$>$;tag=33781098781521612331
\item Record-Route: $<$sip:129.241.200.44;lr$>$
\item Server: SJphone/1.60.299a/L (SJ Labs)
\item To: "unknown"$<$sip:amir@fred.item.ntnu.no:5060$>$;tag=33781067991850961058
\end{list}
\paragraph{Message Body}
\begin{list}{-}{}
\item Session Description Protocol Version (v): 0 
\item Owner/Creator, Session Id (o): - 3569576571 3569576571 IN IP4 129.241.209.3
\item Session Name (s): SJphone
\item Connection Information (c): IN IP4 129.241.209.3
\item Time Description, active time (t): 0 0
\item Session Attribute (a): direction:actpass
\item Media Description, name and address (m): audio 49164 RTP/AVP 3 101
\item Media Attribute (a): rtpmap:3 GSM/8000
\item Media Attribute (a): rtpmap:101 telephone-event/8000
\item Media Attribute (a): fmtp:101 0-11,16
\end{list}
\subsubsection{Learning}
SIP is designed to provide signaling and session management for voice and multimedia connections over packet-based networks. SDP is a format for describing streaming media initialization parameters. SIP was designed as one module in an IP communications solution, it can integrate with SDP to exchange session capabilities and features. The Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client. So in our case, SDP offer and SDP answer will share the same CALL-ID.
\subsection{Case D: C calls B, and during this ongoing call A calls B}
\subsubsection{Pre-conditions}
A, C and B all registered with the proxy. C and B in an ongoing call (So this is case C again, but now this first caller is termed ‘C’, and the new caller later is termed ‘A’.)
\subsubsection{Test results}
see figure \ref{fig:24}
\begin{figure}
\centering
\hspace{-3cm}
\includegraphics[width=1.2\textwidth]{24.pdf}
\caption{C calls B, and during this ongoing call A calls B}
\label{fig:24}
\end{figure}
\subsubsection{SDP details}
\paragraph{Call-ID and identification of a dialogue}
Call-ID header field is a dialog identifier and it's purpose is to identify messages belonging to the same call. Such messages have the same Call-ID identifier. That means we can use Call-ID to resume the suspended call.
\paragraph{How does the new SDP offer to C look, when B puts this first call on hold}
Connection Information (c) in the SDP of a re-Invite message are used to indicate that media streams of the receiver are placed on hold. if sending out a re-Invite with Connection Information (c): IN IP4 0.0.0.0, the receiver's call will be on hold.
\subsubsection{Learning}
Call-ID is a identifier of the call, we use Call-ID as identifer to resume a suspended call. Re-invite can be used to suspend an ongoing call. The re-invite message contains an SDP message containing only those previous attributes.
\subsection{Case J (voice and video case): Renegotiating media}
\subsubsection{Setup/anything special}
%\begin{center}
    \begin{tabular}{| l | l | l |}
    \hline
    SIP entity & Software & SIP URI \\ \hline
    UA-A & X-Lite 4 & 129.241.209.3  \\ \hline
    UA-B & X-Lite 4 & 129.241.209.4  \\ \hline
    SIP-Proxy & Opensips 1.7 & 129.241.200.44\\
    \hline
    \end{tabular}
%\end{center} 
\subsubsection{Test results}
see figure \ref{fig:25}
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{25.pdf}
\caption{Renegotiating media}
\label{fig:25}
\end{figure}
\subsubsection{SDP Message}
\paragraph{Invite}
\begin{list}{-}{}
\item Request-Line: INVITE sip:amir@fred.item.ntnu.no SIP/2.0
\item Call-ID: 0d11e539b0caa199f35d78865d82cd6a@0:0:0:0:0:0:0:0
\item CSeq: 1 INVITE
\item From: "ping" $<$sip:ping@fred.item.ntnu.no$>$;tag=4e908de3
\item To: $<$sip:amir@fred.item.ntnu.no$>$
\item Owner/Creator, Session Id (o): ping 0 0 IN IP4 129.241.209.4
\item Connection Information (c): IN IP4 129.241.209.4
\item Media Description, name and address (m): audio 5016 RTP/AVP 9 96 97 98 100 0 8 102 3 103 5 6 4 101
\item Media Description, name and address (m): video 5018 RTP/AVP 104 99
\end{list}
\paragraph{re-invite}
\begin{list}{-}{}
\item Request-Line: INVITE sip:amir@129.241.209.3:5060;transport=udp;registering\_acc=fred\_item\_ntnu\_no SIP/2.0
\item Call-ID: 0d11e539b0caa199f35d78865d82cd6a@0:0:0:0:0:0:0:0
\item CSeq: 2 INVITE
\item From: "ping" $<$sip:ping@fred.item.ntnu.no$>$;tag=4e908de3
\item To: "amir" $<$sip:amir@fred.item.ntnu.no$>$;tag=45dc462a
\item Owner/Creator, Session Id (o): ping 0 1 IN IP4 129.241.209.4
\item Connection Information (c): IN IP4 129.241.209.4
\item Media Description, name and address (m): audio 5016 RTP/AVP 9 96 97 98 100 0 8 102 3 103 5 6 4 101
\item Media Description, name and address (m): video 5018 RTP/AVP 104 99
\end{list}
\subsubsection{Learning}
INVITE is used to initiate a session, but INVITE is also used in SIP to renegotiate media types on an ongoing call.
\end{document}

